/*
 * @Author: Clark
 * @Email: haixuanwoTxh@gmail.com
 * @Date: 2023-01-13 15:41:40
 * @LastEditors: Clark
 * @LastEditTime: 2023-01-13 16:03:18
 * @Description: file content
 */

#include "apue.h"
#include <errno.h>

void pr_mask(const char *str)
{
    sigset_t sigset;
    int errno_save = errno;

    if (sigprocmask(0, NULL, &sigset) < 0)
    {
        err_ret("sigprocmask error");
    }
    else
    {
        printf("%s", str);
        if (sigismember(&sigset, SIGINT))
        {
            printf(" SIGINT");
        }

        if (sigismember(&sigset, SIGQUIT))
        {
            printf(" SIGQUIT");
        }

        if (sigismember(&sigset, SIGUSR1))
        {
            printf(" SIGUSR1");
        }

        if (sigismember(&sigset, SIGALRM))
        {
            printf(" SIGALRM");
        }
        printf("\n");
    }

    errno = errno_save;
}
